<?php

// .................公共的操作用户表模型................

	class UserModel extends Model{
		//.....定义属性
		//.........定义表名
		public $table = 'admin';
		
		//验证登陆的规则   一定要注意顺序
		//验证的方法  写入方法中
		public $validate = array(
			//array('字段名','验证方法','错误信息','验证条件','验证时机')
			//判断用户名是否为空
			//2是必须验证
			//3是插入与更新的时候都要验证
			//判断用post 提交过来的username 是否为空
			array('adname','nonull','用户名不能为空',2,3),
			//密码不能为空
			array('password','nonull','密码不能为空',2,3),
			//验证码不能为空
			array('code','nonull','验证码不能为空',2,3),			
		);
		
		//..................验证登陆...........
		public function validate_login(){
			//执行自动验证,如果不通过,就返回假的
			//执行自动验证,必须使用create()
			//模型方法执行自动过滤、自动验证、自动完成、自动填充
			if(!$this->create()) return false;
				//用Q函数 全部都给过滤了  安全级数升级了
				//用POST 接收的验证码 
				//strtoupper  全部转为大写 
				//Q过滤函数默认使用配置项 FILTER_FUNCTION 的设置
				//........验证码...........
			$code = Q('post.code','','strtoupper');
			//判断  如果用POST的验证码 和   session 里的不一样
			if($code != session('code')){
				//那就返回出错误
				//这个error 相当于变量 是空的哦 
				//把这个错误信息 压入到这个 error里   后面调用的时候 就能接收到这个错误信息
				//如果你不填写 调用的时候 就会出错 没有错误信息
				$this->error = '验证码错误';
				//返回错误
				return false;
			}
			
			
			//............用户名不存在或者密码不正确.................
			//让用户迷茫的回答
			//安全处理一下用post 过来的用户名
			//Q过滤函数默认使用配置项 FILTER_FUNCTION 的设置
			$username = Q('post.adname');
			//安全处理一下用POST 传过来的密码 并且加密
			$password = Q('post.password', '','md5');
			
			// 从数据库中找到 所有信息 把username提取出来  赋值给$data
			//find  通过 find 操作进行简单的单条查询操作。
			
			$data = $this->where(array('adname'=>$username))->find();
			
			// 判断一下 从数据库里找到的用户名和密码 和用户输入不匹配 
			if(!$data || $password != $data['password']){
				//返出错误信息
				$this->error = '用户名或密码不正确';
				return false;
			}			
			return $data;
		}
		//......获得数据
		public function get_data(){
			p($this->all());
		}
				
	}
